#ifndef NMC_SLOPINGRIGHTTILE_HPP
#define NMC_SLOPINGRIGHTTILE_HPP

#include "tile/tile.hpp"

namespace nmc
{
	/**
	 * Represents a tile that slopes to the right with a 45 degree angle.
	 *
	 *   |\
	 *   |_\
	 *    
	 */
	class SlopingRightTile: public Tile
	{
	public:
		SlopingRightTile(const Point& tileMapPosition, TileMap* tileMap);
		void resolveCollision(Actor* actor, Point& velocity);
		void stickToFloor(Actor* actor, Point& velocity);
		bool isStandingOnFloor(Actor* actor);
		void calculateSolidity(TileMap* tileMap);
		void draw(Graphics* graphics);
		void drawType(Graphics* graphics);
		void drawSolidity(Graphics* graphics);
	
	private:
		bool mSolidBottom;
		bool mSolidLeft;
		bool mConnectedToASlopingRightTile;
		bool mRightEndOfSlope;
		bool mNearARoof;
	};
}

#endif